Voip providing call forwarding to external phone network

ABSTRACT

System and method of forwarding a caller&#39;s request for a Voice over IP (VoIP) call to another phone network using the callee&#39;s phone number if the callee&#39;s VoIP account is offline. The call request is forwarded after the VoIP system determines that the callee VoIP account is currently offline. In this manner, a voice communication can still be established through the phone network despite the callee being unavailable for a VoIP call. The callee&#39;s phone number may be explicitly contained in the VoIP user ID or stored in the VoIP database and associated with the user ID. The forwarding process is transparent to the caller.

CROSSREFERENCE

This application claims benefit of and priority to the Chinese patentapplication No. 201510181502.3, filed on Apr. 16, 2015, entitled “SYSTEMAND METHOD OF COMMUNICATION BASED ON VOIP PLATFORM;” claims benefit ofand priority to the Chinese patent application No. 201510998007.1, filedon Dec. 25, 2015, entitled “FORWARDING ROAMING CALL TO VOIP SYSTEM;” andclaims benefit of and priority to the Chinese patent application No.201510997454.5, filed on Dec. 25, 2015, entitled “VOIP PROVIDING CALLFORWARDING TO EXTERNAL PHONE NETWORK.” The contents of the foregoingpatent applications are herein incorporated by reference in theirentireties.

TECHNICAL FIELD

The present disclosure relates generally to the field of networkcommunications, and, more specifically, to the field of Voice overInternet Protocol (VoIP) communications.

BACKGROUND OF THE INVENTION

Voice over Internet Protocol (VoIP) is the technology of using digitalsignal transmission techniques to transmit voice communications inreal-time and at least partially over the Internet. VoIP enables anaudio or video call over Internet Protocol (IP) networks as acost-effective alternative of voice transmission that exclusively usestraditional public switched telephone networks (PSTNs) by long distanceexchange carriers. Due to the digital nature of the transmission, VoIPprovides increased signal processing, encryption and call set-up andoperating capabilities.

Typically, VoIP messages are transmitted using the Real-time TransportProtocol (RTP), the RTP Control Protocol (RTCP), and the SessionInitiation Protocol (SIP). Accordingly, a VoIP system includes RTPserver(s) and SIP server(s). The RTP defines a standardized packetformat and carries the media streams (e.g., audio and video data), whilethe RTCP is used to monitor transmission statistics and Quality ofService (QoS) and aid synchronization of multiple streams. The SIPassists in setting up and ending connections of various systemcomponents across the network.

In existing VoIP systems, each user is associated with a user accountthat is independent of a telephone number, such as a landline phonenumber or a mobile phone number. Usually a user ID can be any string ofcharacters chosen by a user. A caller-user and a callee-user must beboth logged in their VoIP accounts at the same time to initiate a VoIPcall. A major cause for frustration in using VoIP is that a user account(especially a callee) often stays logged out or offline so the callercannot reach the callee, for example while the VoIP application programis closed on the callee's IP phone, the callee's IP phone is shut downor has no access to WiFi or any other network service, and etc. Incontrast, a user's landline phone or cell phone typically remain standbyor open constantly.

SUMMARY OF THE INVENTION

Therefore, it would be advantageous to provide a VoIP system that canincrease the chance of one VoIP user reaching another for voicecommunications and thereby improves user experience with the VoIPsystem.

Embodiments of the present disclosure provide a VoIP system configuredto access a phone number based a VoIP call request and, if the callee isoffline, forward the call request to the phone device associated withthe phone number. The phone device is controlled by a phone networkexternal to the VoIP system, such as a land line phone, a mobile phone,a phone in a private phone network, or a phone in another VoIP system ofthe callee (collectively referred to as “a regular phone” herein). Uponreceiving the VoIP call request, the Session Initiation Protocol (SIP)server of the VoIP system searches for any endpoint device on which thecallee account is logged in. If it is determined that the callee accountis offline, the SIP server automatically transfers the call request tothe phone network associated with the phone number. In this manner, thecallee can be advantageously reached by the regular phone despite his orher VoIP account being offline. In some embodiments, the VoIP systemuses a phone number of a regular phone as a user's VoIP account ID.Thus, during call forwarding, the SIP server can automatically anddirectly use the callee's VoIP account ID to contact the callee'sregular phone. The process of forwarding the VoIP call request to anexternal phone network is transparent to the caller endpoint device andso the caller. Thus, the caller only needs dial for the callee once andyet is offered with the possibility of reaching the callee by a VoIPcall or otherwise a phone call. Further, because the VoIP systemaccording to the present disclosure gives priority to using VoIPcommunication than a phone network, it advantageously reduces the users'average cost for voice communications.

Embodiments of the present disclosure also provide a mechanism of usinga VoIP system to process a call request directed to a regular phone,especially when the regular phone is outside the home network coveragearea and roaming charge would apply. A callee's regular phone isconfigured to automatically convert a call request to a VoIP callrequest which is automatically forwarded to an SIP platform that isassociated with a local access number. The access number is selectedsuch that the communication between the regular phone and the SIPplatform is free of roaming fee. As the callee's VoIP account ID is setthe same as the regular phone number, the SIP platform can send the callrequest to the callee's VoIP account directly based on the dialednumber. This mechanism can advantageously spare the callee roaming feesthat would have been imposed when the callee is in a foreign countrywith reference to the home network of the regular phone. The switchingfrom a regular phone call to a VoIP call can be transparent to thecaller's device and so the caller.

If a user's VoIP account and a regular phone are both configured forcall forwarding to each other, a call dead-circle may occur in thescenario that the callee's VoIP account is found offline. To solve thisissue, an SIP server according to embodiments of the present disclosuredetermines whether a call request is transmitted from an external phonenetwork (e.g., public switched telephone network (PSTN) or within theVoIP system (e.g., through the Internet). If the call is from the PSTNand the callee's VoIP account is offline, the SIP server mark the callas originated from the VoIP system and automatically ends the callsession instead of forwarding it again to the PSTN system.

In one embodiment of the present disclosure, a computer implementedmethod includes receiving a first call request submitted from a firstendpoint device through a first user account for communicating with asecond user in real-time. The first call request identifies a seconduser account associated with the second user. The first user account andthe second user account are registered with a VoIP service provider. Themethod further includes determining if the second user account iscurrently online, and identifying a telephone number associated with thesecond user account based on the first call request. If the second useraccount is currently offline, a second call request is sent to a phonedevice associated with the telephone number for communicating with thesecond user in real-time. The phone device is controlled by a telephonenetwork external to the VoIP service provider. A call session is theninitiated between the first endpoint device and the phone device.

The foregoing is a summary and thus contains, by necessity,simplifications, generalization and omissions of detail; consequently,those skilled in the art will appreciate that the summary isillustrative only and is not intended to be in any way limiting. Otheraspects, inventive features, and advantages of the present invention, asdefined solely by the claims, will become apparent in the non-limitingdetailed description set forth below.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention will be better understood from areading of the following detailed description, taken in conjunction withthe accompanying drawing figures in which like reference charactersdesignate like elements and in which:

FIG. 1 is a flow chart depicting an exemplary computer implementedprocess of managing a VoIP call including call forwarding to a phone inan external phone network in accordance with an embodiment of thepresent disclosure;

FIG. 2 illustrates an exemplary communication flow during processing aVoIP call request and call forwarding in accordance with an embodimentof the present disclosure;

FIG. 3 is a flow chart depicting an exemplary computer implementedmethod of forwarding a roaming call to a VoIP system for processing inaccordance with an embodiment of the present disclosure;

FIG. 4 illustrates an exemplary communication network configured tousing a VoIP system to facilitate an international call originallydirected to a regular phone in accordance with an embodiment of thepresent disclosure;

FIG. 5 is a flow chart depicting an exemplary process of call forwardingbetween a VoIP system and a PSTN without causing a call dead-circle inaccordance with an embodiment of the present disclosure;

FIG. 6 illustrates an exemplary communication flow during processing aVoIP call request while the callee's VoIP account and regular phone areboth configured for call forwarding in accordance with an embodiment ofthe present disclosure;

FIG. 7 is a block diagram illustrating the configuration of an exemplarySIP server device in a VoIP system configured to forward a call requestto an external phone network according to an embodiment of the presentdisclosure;

FIG. 8 illustrates a network system including a VoIP system capable offorwarding calls to external phone networks in accordance with anembodiment of the present disclosure.

DETAILED DESCRIPTION

Reference will now be made in detail to the preferred embodiments of thepresent invention, examples of which are illustrated in the accompanyingdrawings. While the invention will be described in conjunction with thepreferred embodiments, it will be understood that they are not intendedto limit the invention to these embodiments. On the contrary, theinvention is intended to cover alternatives, modifications andequivalents, which may be included within the spirit and scope of theinvention as defined by the appended claims. Furthermore, in thefollowing detailed description of embodiments of the present invention,numerous specific details are set forth in order to provide a thoroughunderstanding of the present invention. However, it will be recognizedby one of ordinary skill in the art that the present invention may bepracticed without these specific details. In other instances, well-knownmethods, procedures, components, and circuits have not been described indetail so as not to unnecessarily obscure aspects of the embodiments ofthe present invention. Although a method may be depicted as a sequenceof numbered steps for clarity, the numbering does not necessarilydictate the order of the steps. It should be understood that some of thesteps may be skipped, performed in parallel, or performed without therequirement of maintaining a strict order of sequence. The drawingsshowing embodiments of the invention are semi-diagrammatic and not toscale and, particularly, some of the dimensions are for the clarity ofpresentation and are shown exaggerated in the drawing Figures.Similarly, although the views in the drawings for the ease ofdescription generally show similar orientations, this depiction in theFigures is arbitrary for the most part. Generally, the invention can beoperated in any orientation.

Notation and Nomenclature:

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the followingdiscussions, it is appreciated that throughout the present invention,discussions utilizing terms such as “processing” or “accessing” or“executing” or “storing” or “rendering” or the like, refer to the actionand processes of a computer system, or similar electronic computingdevice, that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories and other computer readable media into other data similarlyrepresented as physical quantities within the computer system memoriesor registers or other such information storage, transmission or displaydevices. When a component appears in several embodiments, the use of thesame reference numeral signifies that the component is the samecomponent as illustrated in the original embodiment.

VoIP Providing Call Forwarding to External Phone Network

Overall, embodiments of the present disclosure employ a computerimplemented process of forwarding a caller's request for a Voice over IP(VoIP) call to another phone network using the callee's phone number ifthe callee's VoIP account is offline. The call request is forwardedafter the VoIP system determines that the callee VoIP account iscurrently offline. In this manner, a voice communication can still beestablished through the phone network despite the callee beingunavailable for a VoIP call. The callee's phone number may be explicitlycontained in the VoIP user ID or stored in the VoIP database andassociated with the user ID. The forwarding process is transparent tothe caller.

Embodiments of the present disclosure also provide a call forwardingprocess from a regular phone network to a VoIP system. An internationalcall request directed to a regular phone is switched to a local SIPplatform to set up a VoIP call session. Thereby the callee can be sparedof expensive roaming fees that would be imposed by a regular phonenetwork. If a user's VoIP account and a regular phone are bothconfigured for call forwarding to each other and once the VoIP accountis determined to be offline, the SIP server marks an incoming call fromthe PSTN as originated from the VoIP system and automatically ends thecall session to prevent a call dead-circle.

FIG. 1 is a flow chart depicting an exemplary computer implementedprocess 100 of managing a VoIP call in accordance with an embodiment ofthe present disclosure. Process 100 may be implemented on a SessionInitiation Protocol (SIP) server of a VoIP system as described ingreater detail below. At 101, a call request is submitted to the SIPserver by a caller interacting with an endpoint device in the VoIPsystem. For instance, the caller inputs the callee's VoIP account ID (or“VoIP ID” herein) through a graphical user interface (GUI) of the VoIPapplication program installed in a smart phone. At 102, the call requestis processed at the SIP server. Based on the call request, the callee'sVoIP account information including the callee's phone number isaccessed. According to the present disclosure, a VoIP user account isassociated with a phone number that belongs to a phone network externalto the VoIP system, such as a wireless phone network or a publicswitched telephone network (PSTN).

At 103, the SIP server searches for a VoIP endpoint device on which thecallee's account is logged in, or “online.” If the SIP server detectssuch an endpoint device, the SIP server initiates a VoIP communicationsession between the endpoint devices of the caller and the callee at104.

The endpoint devices of the caller and the callee are VoIP subscribinguser devices. Devices that may operate as endpoint devices includepersonal computers, desktop computers, smart phones, Personal DigitalAssistants (PDAs), handheld computers, programmable consumerelectronics, standard telephones configured with an analog telephoneadaptors (ATA), IP phones, or other mobile devices and alike. It will beappreciated that a subscribing user device may have a VoIP applicationprogram installed (e.g., in a smart phone) or may be coupled to anadapter that is configured to convert a phone call to a VoIP call (e.g.,a VoIP router or VoIP gateway).

On the other hand, if the SIP server determines that the callee's VoIPaccount is currently logged out, or “offline” at 103, the SIP serverautomatically forwards the call request to the external phone network.More specifically, the SIP server sends the callee's phone number to theexternal phone network and requests for a call session on the caller'sphone at 105. In response, the phone network processes the forwardedrequest and establishes a dial connection between the caller's endpointdevice and callee's regular phone.

In some embodiments, the call forwarding option has been elected by thecallee beforehand, for example in a VoIP account registration or settingconfiguration process through a GUI of the VoIP application. In someembodiments, the phone number is identical with or explicitly containedin the callee's VoIP ID. In this case, a caller can directly input thecallee's phone number when submitting the call request and this numberis used directly by the SIP server to contact the external phonenetwork. In this configuration, the caller needs only associate onecontact number with the callee, rather than separate VoIP ID and phonenumber. In some other embodiments, the callee's phone number is storedin a database of the VoIP system as part of the user profile. The SIPserver accesses the phone number from the database once receiving thecallee's user ID in the call request.

The present disclosure is not limited to any specific type of a phonenetwork that can receive a forwarded call request from a VoIP system. Aphone associated with such a phone network may be referred to as a“regular phone” herein. An externalphone network can be a PSTN, aPrivate Branch Exchange (PBX) network, a mobile phone network, oranother VoIP system, and so forth. Such a mobile phone network may be aGlobal System for Mobile Communications (GSMC) network, a Code divisionmultiple access (CDMA) network, and etc.

Therefore, according to the present disclosure, in response to a callersubmitting a call request, the VoIP system first searches for anendpoint device in which the callee's VoIP account is logged in andthereby determines whether a VoIP call session can be established. Ifthe callee's account is currently offline, the VoIP system sends thecallee phone number to the phone network such that a communicationsession between the caller device and callee's phone can be established.Thus, the VoIP system advantageously ensures that a VoIP call sessiontakes precedence over a call session through the phone network to reducethe average cost the user(s) incur for making calls. Further, accordingto the present disclosure, the VoIP system automatically switches to analternative communication system when the callee's VoIP account isoffline. This advantageously increases the likelihood the callee beingreached by the caller. Moreover, as the call forwarding process istransparent to the caller's endpoint device as well as the caller, thecaller perceives no failure to connect a VoIP call but only thesuccessful connection with the caller. Consequently, the VoIP systemprovides better user experience.

FIG. 2 illustrates an exemplary communication flow during processing aVoIP call request in accordance with an embodiment of the presentdisclosure. Illustrated in a simplified form, the VoIP system 200includes a SIP sever 210 and the respective endpoint devices 220 and 230of the caller and the callee.

In response to a caller's interaction with a user interface on theendpoint device 220, a call request is generated from the endpointdevice 220 and sent to the SIP server 210 of the VoIP system (as markedby arrow “1”). For example, the call request includes the user IDs ofthe caller and the callee, from which the SIP server can obtain thecallee's phone number registered with an external phone network.

Upon receiving the call request, the SIP server 210 searches for anendpoint device with the caller's account logged in (as marked by arrow“2”). Assuming the callee's endpoint device 230 is online and the calleeaccepts the call, the device 230 feeds back to the SIP server 210 with asignal indicating its availability (as marked by arrow “3”). Inresponse, the SIP server 210 informs the caller's endpoint device 220that the callee has accepted the call (as marked by arrow “4”). The SIPserver then establishes the call connection and voice data transmissionbetween the devices 220 and 230.

On the other hand, in the scenario that no endpoint device is detectedwith the callee's VoIP account logged in, the SIP server calls thecallee's phone number through the external phone network, which directsto the callee's regular phone 240 (as marked by arrow “5”). For examplethe regular phone 240 is a landline phone controlled by a PSTN system ora cell phone controlled by a GSM system. If the callee answers the callrequest on the regular phone 240, it sends a feedback signal to the SIPserver 210 (as marked by arrow “6”). As a result a call session isestablished between the caller's VoIP endpoint device 220 and thecallee's regular phone 240.

Commonly, when a user travels outside the geographical coverage area ofthe home phone network, the user has to pay very expensive roaming feesto use the mobile phone to make, especially receive calls, such asinternational roaming fees. According to another aspect of the presentdisclosure, a mobile phone device can be configured to cause anyout-of-network call request (e.g., international call) to be forwardedto a local number which corresponds to an access number of an SIPplatform. In response, the SIP platform process the call request as aVoIP call request, thereby converting a regular phone call to a VoIPcall without invoking roaming charge. FIG. 3 is a flow chart depictingan exemplary computer implemented method 300 of forwarding aninternational roaming call to a VoIP system for processing in accordancewith an embodiment of the present disclosure.

At 301, a user's (the “callee” in this example) phone (e.g., mobilephone) is configured for call forwarding by linking its phone numberwith a local SIP platform access number. The call forwarding functionmay be enabled responsive to user input or automatically upon detectingthat the phone has traveled out of the home network. For instance, whentravelling oversea, the user elects the call forwarding function throughthe phone program installed in the phone. The local SIP platform accessnumber may be automatically selected or user-specified so that thecommunication between the phone and the SIP platform is free of roamingfee.

Once configured, any call request directed to the phone number or dialedfrom the phone is automatically forwarded (e.g., by the phone homenetwork) to the SIP server associated with the local SIP platform accessnumber. This forwarding process can be transparent to the caller'sdevice and the caller. Thus, at 302, responsive to a caller dialing thecallee's phone number, a call request directed to the phone number isreceived at the phone network and at the phone. The call request may besubmitted by the caller from any type of phone, e.g., the caller's VoIPphone or a regular phone. At 303, the initial call request isautomatically converted to a VoIP call request for calling the callee'sVoIP account. At 304, the VoIP call request is sent to the local SIPserver associated with the local SIP platform access number. Thecommunication between the callee's phone through its home network andthe VoIP platform is local and thus free of roaming charge. Accordingly,the SIP server searches for an endpoint device with the caller's accountlogged in.

If, at 305, the SIP server detects that the callee's account is online,the SIP server initiates a VoIP communication session between theendpoint devices of the caller and the callee at 306. The callee'sendpoint device may be the same device as the callee's regular phoneassociated with the phone number, or a separate computing device. As aresult, the callee can advantageously make an international call withoutincurring any roaming charge. If the callee is offline as determined at305, the SIP server can send a message indicating that the caller isunavailable and ends the call at 307. Alternatively, if the callee hasso configured the call forwarding feature in the VoIP account asdescribed with reference to FIGS. 1-2, the VoIP call may be revertedback to a regular call on the phone, which imposes roaming charge. Theforegoing process in 302-307 is repeated for each call request directedto the callee's regular phone number.

FIG. 4 illustrates an exemplary communication system and network 400configured to using a VoIP system to facilitate an international calloriginally directed to a regular phone number in accordance with anembodiment of the present disclosure. The system includes a caller'sendpoint device 401, a callee's phone 402, a VoIP platform 403 (e.g., anSIP server), and an VoIP endpoint device 405 with callee's VoIP accountlogged in. The VoIP platform 403 and the endpoint device 405 are coupledto the Internet 404. For example, the callee's phone 402 is a mobilephone with a phone number registered with the PSTN and also installedwith a VoIP client application program.

In this embodiment, the callee's phone 402 is configured for callforwarding to the VoIP platform 403. More specifically, the phone numberof phone 402 is linked with the platform access number of the VoIPplatform 403. For instance, the callee is outside the geographicalcoverage area of the home network of the phone 402, e.g., travellingoutside the USA. Assuming the home network may impose roaming charge forany call made on the phone 402 while the callee is outside the USA.During the call forwarding configuration, a local platform access numberis selected to ensure communication between the phone 402 and the VoIPplatform 403 is free of roaming charge. The callee's VoIP ID isidentical with the phone number of phone 402.

When a call request submitted from the caller's device 401 is receivedat the callee's phone 402 (as shown by the arrow “1”), the call requestis automatically forwarded to the VoIP platform 403 based on the localVoIP platform number (as shown by the arrow “2”). Thus, the initial callrequest directed to the phone number of the phone 402 is converted to aVoIP request including the callee's phone number. The original callrequest may be submitted through the caller's VoIP account.

Based on the phone number, The VoIP platform directly obtains thecallee's VoIP ID as it is the same as the phone number in someembodiments. The VoIP platform searches for an endpoint device with thecallee's VoIP ID logged in. For example, if the callee's account islogged in at the endpoint device, a VoIP call session can be establishedbetween the caller device 401 and the callee's device 405.

In some embodiments of the present disclosure, a user's VoIP account anda regular phone can both be configured for call forwarding to eachother, for example as described with reference to FIGS. 1 and 3. Theconfiguration can provide better user experience and reduce cost tousers by effective increasing the probability of reaching a callee aswell as sparing the users from roaming fee. However, this configurationcan be problematic in the scenario that the VoIP account is determinedto be offline, where the call request is forwarded from the SIP serverto the external phone network. The phone network is then prompted toautomatically forward the call request back to the SIP server, whichcauses the SIP server to forward the call request again back to thephone network, and so on, causing a so-called call dead-circle.

FIG. 5 is a flow chart depicting an exemplary process 500 of two-waycall forwarding between a VoIP system and a PSTN without causingdead-circle in accordance with an embodiment of the present disclosure.At 501, the callee's VoIP account is configured to enable the functionof call forwarding from the VoIP account to the callee's regular phonethat is coupled to the PSTN, as described greater detail with referenceto FIGS. 1-2. The VoIP ID may be identical with the phone number of theregular phone. At 502, the callee's regular phone is configured toenable the function of call forwarding from the regular phone to theVoIP account, e.g., by linking the phone number to a SIP platform accessnumber, as described in greater detail with reference to FIGS. 3-4. At503, a VoIP call request from a caller's VoIP endpoint device isreceived. If the callee's VoIP account is online, a VoIP call session isestablished at 505.

If it is determined that the callee's VoIP account is offline, at 506,the call request is forwarded to the callee's regular phone through thePSTN based on the configuration performed at 501. As the regular phoneis also configured for call forwarding, the PSTN automatically forwardsthe call request back to the VoIP system. Therefore, at 507, the SIPplatform associated with the specified SIP platform access numberreceives the call request from the PSTN. As illustrated by the dashedarrow line, the processes 504, 506 and 507 may undesirably repeat andbecome a loop, or a call dead-circle.

To solve the call dead-circle issue, the SIP platform distinguishes andlabels the status of a call request, whether from an external phonenetwork (e.g., the PSTN) or from the Internet. If the SIP platformdetermines that a call request is sent from the PSTN, the SIP platformmark the status of the call request as originated from a VoIP request at508, e.g., by attaching a status identifier with the phone number or theVoIP account number in the call log. Accordingly the SIP platform endsthe call as well as informs the caller that the callee is unavailable at509. If the SIP platform determines that a call request is sent from theInternet, the SIP platform proceeds to process the call. It will beappreciate that the present disclosure is not limited by the mechanismand process of determining whether a call request is routed from a PSTNor from the VoIP system (e.g., the Internet).

In some other embodiments, upon receiving a call request at 503, the SIPplatform determines whether the call is routed from an external phonenetwork (e.g., the PSTN) or the Internet. If it is from the PSTN, theSIP platform marks such status with the phone number or the VoIP accountnumber, for instance associating a status identifier with the phonenumber in the call log. The mark can be maintained until the callsession is over. The SIP platform then determines whether the callee'sVoIP account is online. If online, a call session is initiated asdescribed with reference to blocks 504 and 505. However, if offline, theSIP platform ends the call session based on the status identifiers,rather than forwarding the call request to the PSTN, as described withreference to blocks 504 and 509.

FIG. 6 illustrates an exemplary communication flow during processing aVoIP call request while the callee's VoIP account and regular phone areboth configured for call forwarding in accordance with an embodiment ofthe present disclosure. Illustrated in a simplified form, the VoIPsystem 600 includes a SIP sever 610 (or platform) and the respectiveendpoint devices 620 and 630 of the caller and the callee.

From the VoIP endpoint device 620, the caller first submits a callrequest to the SIP server 610 for calling the callee (as shown by arrow“1”). In response, the SIP server 610 tries to detect an endpoint devicehaving the callee's account logged in. In this example, the SIP server610 determines that the callee's VoIP account is currently offline (asshown by arrow “2”).

Based on the call forwarding configuration for the VoIP account, the SIPserver 610 contacts the callee's regular phone 640 attempting toestablish a call session between the caller's device 620 and thecallee's regular phone 640 (as shown by arrow “3”). In turn, based onthe call forwarding configuration for the regular phone, the regularphone 640 forwards the call back to the SIP server 610 attempting toconvert the call to a VoIP session.

According to the present disclosure, the SIP server marks all the callsthat are directed to the SIP access number and coming from the PSTN bystatus identifier. For example a prefix “*” or any other suitabledenotation is associated with the regular phone number (as shown byarrow “5”) in the call log. Thus, if the SIP server detects thatcallee's VoIP account is offline (as shown by arrow “6”), and that thephone number is associated with the status identifier, the SIP serverdrops the call instead of forwarding the call to the regular phone 640(as shown by arrow “7”).

FIG. 7 is a block diagram illustrating the configuration of an exemplarySIP server device 700 in a VoIP system configured to forward a callrequest to an external phone network according to an embodiment of thepresent disclosure. The SIP server device 700 includes a main processor701, system memory 702, a graphics processing unit (GPU) 703, I/Ointerfaces 704 and network circuits 705, an operating system 706 andapplication software 710. The application software 710 includes the SIPserver program 720 stored in the memory 702. When executed by the mainprocessor 701, the SIP server program 720 can initiate a VoIP callsession responsive to a user request if the callee is online. Whereas,if the callee if offline, the SIP sever program 720 can automaticallyforward the call request to the callee's regular phone associated withthe callee, where the callee's regular phone is controlled by a phonenetwork external to the VoIP system.

More specifically, the SIP server 720 program includes the networktopology/routing database 721, a RTP selection 722 module, a sessiontear down module 723, a session setup module 724, and an endpoint devicedetection module 725. The network topology/routing database 721 storesthe information regarding the arrangement and statuses of variouscomponents and the physical and logical structure of the network used toprovide the VoIP services. According to the addresses of multiple userendpoint devices and based on the information contained in the database721, the RTP selection module 722 identifies suitable RTP servers forthe endpoint devices, respectively. The selection may be based on a setof QoS metrics to achieve enhanced transmission performance between eachparticular endpoint device and its assigned RTP server. The set ofmetrics may be pertinent to latency, availability, jitter, andbandwidth, etc. The session setup module 724 functions to signal theselected RTP servers to establish port mirroring and initiate a VoIPcall session. The session tear down module 723 functions to signal theRTP servers to end the port mirroring relationship once a phone call isended. The endpoint device detection module 725 identifies the onlineendpoint devices participating in a call based on the call request.

The SIP server 700 also includes a user account database 726 and anexternal phone network communication module 727. Besides the userinformation as used in a conventional VoIP system, the user accountdatabase 726 may also store a user's phone number under the user'sprofile. If a callee has enabled he call forwarding function and whenthe endpoint device detection module 725 determines that a callee isoffline, the external phone network communication module 727 sends acall request to the callee's regular phone controlled by the phonenetwork using the phone number.

The SIP server 700 may also be configured to identify whether a callrequest forwarded from an external phone network originates from thepresent VoIP system and accordingly record such status of the callrequest. If a call request is routed from an external phone network, theSIP server 700 treats the call request as a forwarded one which shouldnot be forwarded back to the external phone network. The SIP server 700may generate status idenfier to mark such status of the call request.Accordingly, if SIP server detects that the callee's VoIP account isoffline, it drops the call based on the tag to avoid a call dead loop.

The SIP server program 720 may perform other various functions andprocesses as discussed in detail with reference to FIGS. 1-6. It will beappreciated that the SIP server 700 may include a wide range of othermodules and functions that are well known in the art. Techniques forimplementing these programmed modules are well known in the art.Moreover, a VoIP system according to the present disclosure may includeone or more SIP server devices which may be configured as an SIPregister server, an SIP proxy server, or an SIP redirect server,respectively. A call forwarding function according to the presentdisclosure can be implemented in any one or more of these SIP servers orany other suitable servers. As will be appreciated by those withordinary skill in the art, the SIP server program 720 can be implementedin any one or more suitable programming languages that are known tothose skilled in the art, such as C, C++, Java, Python, Perl, C#, SQL,etc.

FIG. 8 illustrates a network system 800 including a VoIP system 810capable of forwarding calls to external phone networks in accordancewith an embodiment of the present disclosure. The VoIP system 800includes a SIP server 811, RTP servers 812 and 813 and endpoint devices814 and 815, all coupled to each other through a communication network(e.g., the Internet). It will be appreciated that a VoIP systemaccording to the present disclosure also includes various othercomponents that are well known in the art. For example, it will beappreciated that a VoIP endpoint device (e.g., 814 or 815) may becoupled to the Internet and the RTP servers via one or more intermediarydevices, such as a VoIP gateway, a VoIP enabled router, networkswitches, a hub, a private automatic branch exchange (PABX), a firewall, and/or a network address translation device, etc. Further, VoIPdata transmission may employ RTP and SIP over the Transmission ControlProtocol (TCP).

According to embodiments of the present disclosure, a user of the VoIPsystem 810 registers a phone number of an external phone network withthe VoIP system. The external phone network may be a PSTN 820, a GSMsystem 830, or a PBX 840, and etc. Correspondingly, the phone number maybe associated with a landline phone 821 or 822, a mobile phone 831 or832, or an extension phone 841 or 842, and etc. In response to a callrequest, if the SIP server 811 cannot locate an endpoint device in whichthe callee's VoIP account is logged in, the SIP server 811 transitionsto call the phone number through the external network e.g., 820, 830 or840. Still according to embodiments of the present disclosure, the VoIPsystem 810 can also take over and process a phone call forwarded from anexternal phone network, as described in greater detail with reference toFIGS. 3-6.

The present disclosure is not limited by the type or scale of a networkused for transmitting VoIP data. The VoIP system may be deployed on apublic network (or the Internet) or a private network designed toprovide VoIP services, a wired network, a wireless network, aSoftware-Defined Network (SDN), a virtual network, a physical network,or a combination thereof. Correspondingly, the endpoint devices may beassociated with respective public IP addresses or private networkaddresses, etc.

The RTP servers 812 and 813 are capable of routing VoIP data to a peerRTP server in a mirrored fashion. Upon a RTP server (e.g., 812) beingselected to participate in a VoIP call session, it may performs arouting optimization process to determine a network route for exchangingVoIP data with another selected RTP server (e.g., 813).

Although certain preferred embodiments and methods have been disclosedherein, it will be apparent from the foregoing disclosure to thoseskilled in the art that variations and modifications of such embodimentsand methods may be made without departing from the spirit and scope ofthe invention. It is intended that the invention shall be limited onlyto the extent required by the appended claims and the rules andprinciples of applicable law.

What is claimed is:
 1. A computer implemented method of providing voicecommunication service over a network, said method comprising: receivinga first call request submitted from a first endpoint device through afirst user account for communicating with a second user in real-time,wherein said first call request identifies a second user accountassociated with said second user, wherein said first user account andsaid second user account are registered with a Voice over InternetProtocol (VoIP) service provider, and wherein an identification of saidsecond user account is identical with a telephone number; determining ifsaid second user account is currently online; if said second useraccount is currently offline based on said determining, automaticallysubmitting a second call request for communicating with said second userin real-time to a phone device associated with said telephone number,wherein said phone device is controlled by a telephone network externalto said VoIP service provider; and initiating a call session betweensaid first endpoint device and said phone device.
 2. The computerimplemented method of claim 1 further comprising, if said second useraccount is currently online based on said determining, identifying asecond endpoint device with said second user account logged in,initiating a VoIP call session between said first endpoint device andsaid second endpoint device.
 3. The computer implemented method of claim1, wherein said second call request is submitted to a Public SwitchedTelephone Network (PSTN) and said phone device is a landline phone. 4.The computer implemented method of claim 1, wherein said second callrequest is submitted to a mobile communication network and said phonedevice is a mobile phone, and wherein said submitting said second callrequest is transparent to said first endpoint device.
 5. The computerimplemented method of claim 1, wherein said first endpoint devicecorresponds to a computing device installed with a VoIP applicationprogram.
 6. The computer implemented method of claim 1, wherein saidfirst call request is submitted by inputting said phone through agraphical user interface of a VoIP application program installed in saidfirst endpoint device.
 7. The computer implemented method of claim 1further comprising receiving user instructions to configure said seconduser account with respect to forwarding a VoIP call request to thetelephone number.
 8. A system comprising: communication circuits; aprocessor; and memory coupled to said processor and comprisinginstructions that, when executed by said processor, cause the system toperform a method of facilitating voice communication over a networkaccording to a Session Initiation Protocol (SIP), said methodcomprising: receiving a first call request submitted from a firstendpoint device through a first user account for communicating with asecond user in real-time, wherein said first call request identifies asecond user account associated with said second user, wherein said firstuser account and said second user account are registered with a Voiceover IP (VoIP) service provider, and wherein an identification of saidsecond user account is identical with a telephone number; determining ifsaid second user account is currently online; if said second useraccount is currently offline based on said determining, submitting asecond call request for communicating with said second user in real-timeto a phone device associated with said telephone number, wherein saidphone device is controlled by a telephone network external to said VoIPservice provider, and wherein said submitting said second call requestis transparent to said first endpoint device; and initiating a callsession between said first endpoint device and said phone device.
 9. Thesystem of claim 8, wherein said method further comprises, if said seconduser account is currently online based on said determining, identifyinga second endpoint device with said second user account logged in,initiating a VoIP call session between said first endpoint device andsaid second endpoint device.
 10. The system of claim 8, wherein saidsecond call request is submitted to a Public Switched Telephone Network(PSTN) and said phone device is a landline phone.
 11. The system ofclaim 8, wherein said second call request is submitted to a mobilecommunication network and said phone device is a mobile phone.
 12. Thesystem of claim 8, wherein said first endpoint device corresponds to acomputing device installed with a VoIP application program.
 13. Thesystem of claim 8, wherein said first call request is submitted byinputting said phone through a graphical user interface of a VoIPapplication program installed in said first endpoint device.
 14. Thesystem of claim 8, wherein said method further comprising receiving userinstructions to configure said second user account with respect toforwarding a VoIP call request to the telephone number.
 15. A SessionInitiation Protocol (SIP) server of a Voice over IP (VoIP) networkcomprising: communication circuits communicatively coupled to anexternal phone network; a processor; and memory coupled to saidprocessor and comprising instructions that, when executed by saidprocessor, cause the SIP server to perform a method of facilitatingvoice communication, said method comprising: receiving a first callrequest submitted from a first endpoint device through a first useraccount for communicating with a second user in real-time, wherein saidfirst call request identifies a second user account associated with saidsecond user, wherein said first user account and said second useraccount are registered with said VoIP network, wherein said second useraccount is identical with a telephone number, wherein said telephonenumber is controlled by said external phone networkk; searching for asecond endpoint device with said second user account signed in; uponfailure to locate said second endpoint device during said searching,automatically sending a second call request to said external phonenetwork for contacting a phone device of said telephone number, whereinsaid sending said second call request is transparent to said firstendpoint device; and initiating a call session between said firstendpoint device and said phone device.
 16. The SIP server of claim 15,wherein said method further comprises, if determining said second useraccount being currently online, initiating a VoIP call session betweensaid first endpoint device and said second endpoint device.
 17. The SIPserver of claim 16, wherein said second call request is submitted to aPublic Switched Telephone Network (PSTN) and said phone device is alandline phone.
 19. The SIP server of claim 16, wherein said first callrequest is submitted by inputting said phone through a graphical userinterface of a VoIP application program installed in said first endpointdevice.
 20. The SIP server of claim 15, wherein said method furthercomprising receiving user instructions to configure said second useraccount with respect to forwarding a VoIP call request to the telephonenumber.